This invention was not developed in conjunction with any Federally sponsored contract.
Not applicable.
1. Field of the Invention
This invention pertains to the arts of persistent and non-volatile computer data storage and the organization of the devices thereof. In particular, this invention relates to the art of assignment of drive letters which travel with the computer data storage media, including removable hard disk drives and removable optical drives.
2. Description of the Related Art
This application is a divisional application of U.S. patent application Ser. No. 09/409,590, now U.S. Pat. No. 6,578,034 filed on Sep. 30, 1999.
Persistent and mass data storage devices for computer systems, especially those employed in personal computers, are well known within the art. Many are disk-based, such as floppy disks, removable hard disk drives (xe2x80x9cHDDxe2x80x9d), and compact-disk read only memories (xe2x80x9cCD-ROMxe2x80x9d). FIG. 1 shows a typical personal computer system (1) architecture, wherein a CPU (2) interfaces to a variety of I/O devices such as a keyboard (3), monitor or display (5) and a mouse (4). The CPU (2) also may interface to a number of storage peripherals including CD-ROM drives (7), hard disk drives (6), and floppy drives (5). Typically, floppy disk drives interface to the CPU via Integrated Drive Electronics (xe2x80x9cIDExe2x80x9d) (8), but this interface may alternately be one of several other standard interfaces or a proprietary interface. The hard disk drives (6) and CD-ROM drives (7) may interface to the CPU (2) via an IDE or Small Computer System Interface (xe2x80x9cSCSIxe2x80x9d), as shown (9).
FIG. 2 shows a generalization of the hardware, firmware and software organization of a personal computer system (20). The hardware group (21) includes the persistent storage devices discussed supra, as well as other system hardware components such as a real-time clock, keyboard controller, display adapter, etc. A basic input/output system (xe2x80x9cBIOSxe2x80x9d) (22) provides the direct firmware control of these system components typically. An operating system (24) such as the IBM OS/2 operating system provides high level management of the system resources, including the multi-tasking or multi-threaded scheduling and prioritization of the system application programs (25). This generalized view of the system also applies to systems on alternate, non-IBM-compatible platforms, such as workstations, which employ a variety of operating systems such as Microsoft Windows or UNIX. This general organization of computer system resources and software functionality is well understood in the art.
Turning to FIG. 3, disk-based mass storage devices such as hard disk drives, floppy disks and CD-ROMS are based physically on a rotating storage platter (30). This platter may be made of flexible mylar, such as floppy disks, or more rigid platters made of aluminum, glass or plastic, such as hard disk drives and CD-ROMS. For magnetic media, one or both sides of the platter are coated with a magnetic layer capable of recording magnetic pulses from a read/write head. For optical media, data recording is made using changes in reflectivity of a band of light, which is then read by a laser-based head. Writable and Re-writable CD-ROM drives combine the technologies of magnetic disks and optical disks. In general, though, the organization of data on the disk is similar. The disk surfaces are divided into multiple concentric rings, or tracks (31). Some disk drives, such as hard disk drives, consist of multiple platters, in which case corresponding tracks on each platter are grouped into cylinders. Each track is divided into multiple sectors (32) in which data can be stored.
In order to simplify the formatting and control of disk platters, most DOS-based disk formats use a uniform sector length of 512 bytes within all tracks, with additional header and trailer information in each sector bringing a sector to a total standard length of 571 bytes. FIG. 4 shows a typical sector breakdown on a track (31), including header area (40), followed by a 512 byte area for data storage (41), and concluded by an area for Error Correction Codes (xe2x80x9cECCxe2x80x9d) (42). A small gap (43) precedes and follows each sector to provide physical separation between the previous sector (45) and the succeeding sector (44).
As the tracks towards the outer edge of the platter are much longer than the tracks located towards the inner edge or center of the platter, the outer tracks are physically capable of holding more of the equal-length sectors.
Computer disk drives are typically broken into one or more partitions, each of which may be assigned different logical volume or drive letter designations. The partitioning of a physical disk drive is controlled by the partition tables located on it, along with some simple rules which govern where partitions may start and end.
Generally, the rules followed by almost all personal computer operating systems are:
(a) a partition must consist of contiguous disk space,
(b) there may only be 4 partitions on a disk maximum,
(c) the partition table which defines these 4 partitions is part of the Master Boot Record (MBR),
(d) the MBR must always be located in the first sector on the disk,
(e) partitions may be of two types, Primary or Extended,
(f) only one extended partition may exist on a disk,
(g) Primary partitions must always start on cylinder boundaries unless immediately preceded by an MBR, in which case a Primary partition may start on the first track following the MBR,
(h) Extended partitions must always start on a cylinder boundary, and
(i) Partitions, whether Primary or Extended, must end on a cylinder boundary.
To allow more than 4 partitions on a drive, an extended partition can be divided into logical drives. Each logical drive is set up to look like a disk drive, i.e. it""s first sector will contain the equivalent of an MBR (called an EBR) which contains a partition table. This partition table defines one primary partition, which is commonly referred to as a xe2x80x9clogical drive,xe2x80x9d even though it is actually a logical partition. The entire structure consisting of the EBR and the logical partition is the xe2x80x9clogical drivexe2x80x9d. As with all primary partitions following an MBR or EBR, it will start on the first track following the EBR, and end on a cylinder boundary. If there is more than one logical drive existing in the extended partition, then this partition table will also define an extended partition. As with all extended partitions, this extended partition will start and end on a cylinder boundary. This extended partition entry in the EBR is really just a link to the start of the next logical drive. All of the logical drives defined in an extended partition will have this link in their EBRs, except for the last logical drive. The last logical drive in the chain will have only a primary partition defined in its EBR. Thus, the chain of logical drives in an extended partition may be treated as a linked list.
TABLE 1 shows a view of a typical partition table for a disk having two partitions on a 6 Giga Byte drive which has 255 usable sides and 63 sectors per track.
For the disk partitioning shown in TABLE 1, the MBR is located in the first sector on side 0 at cylinder 0 sector 1. The MBR requires only one sector, but the entire track of 63 sectors is xe2x80x9cblockedxe2x80x9d for the use of the MBR, 62 sectors of side 0 cylinder 0 are left unused.
The partitioning rules just discussed have some interesting repercussions, including:
(a) there can be at most 4 primary partitions,
(b) a disk can be partitioned such that there can be as many logical drives as disk space permits,
(c) if one or more logical drives exist, then there can be at most 3 primary partitions,
(d) it is possible to partition a disk such that blocks of disk space are unusable (i.e. they can not be defined as being part of a partition), and
(e) as a result of the restrictions on where a partition may start, there will be unused sectors in a track containing an MBR or EBR.
An example of issue (d) above would be to create a disk with two primary partitions, an extended partition, and then another primary partition. If all of the disk space is not contained within one of the 4 defined partitions, then there is no way to create a partition to hold it and the disk space is therefore unusable.
Disk drives and partitions of disks are typically assigned a drive letter, such as xe2x80x9cA:xe2x80x9d and xe2x80x9cB:xe2x80x9d for floppy disks, xe2x80x9cC:xe2x80x9d for a bootable fixed hard disk drive, and xe2x80x9cD:xe2x80x9d, xe2x80x9cE:xe2x80x9d, etc. for additional drives such as hard disk drives, removable drives including HDD, CD-ROM, etc. In most operating systems, the drive letters are assigned to the devices in the order that the machine detects them during system initialization. Some of the interfaces such as IDE and SCSI have hardware identifier selectors which determine which devices will be found first so that the bootable files can be stored on that device, but in general, the rest of the devices are assigned drive letters in a first-found first-assigned manner.
Generally, a computer system maintains on the bootable drive a centralized registry or database of types of drives and their assigned drive letters. One problem arises when the bootable drive is exchanged, such as for upgrade or replacement of the device, or when it is desirable to have the bootable drive based on removable media. In either case, maintaining proper assignment of drive letters may be difficult or burdensome, requiring manual adjustments and settings.
In most operating systems, application software can be installed on any media, including floppy, fixed disk (non-removable disk), or removable media. During installation of the application software, certain choices are made by the technician performing the installation as to placing all or some of the software files, including executables, dynamic-linked libraries (.DLLs), initialization files (.INI), data files (.DAT) and other files, on certain drives and drive media. As some drive media is removable, such as removable hard disk drives in a workstation or file server, these files may be installed on fixed or removable devices. Most application software records the location of these files, which include program and data files, by the drive letter plus directory or folder which the technician selects. For example, when installing a Lotus word processor application program, Lotus WordPro, a technician may select most of the program files to be installed on the xe2x80x9cE:xe2x80x9d drive in a directory name xe2x80x9c LWP_filesxe2x80x9d, for a full path name of xe2x80x9cE: LWP_files xe2x80x9d.
However, another problem arises when the application program files are installed on a removable media, and it is desirous to be able to use those programs on a plurality of machines. For example, a re-writable CD-ROM (CD-RW) drive in a first machine may be assigned the drive letter xe2x80x9cE:xe2x80x9d, so during installation, the program is set up to execute from drive xe2x80x9cE:xe2x80x9d. Subsequently, the same disk is installed in a second machine for use of the software stored on it, but in the second machine the CD-RW drive assignment is different, say xe2x80x9cF:xe2x80x9d. It is highly likely that the application program will not operate correctly because it will attempt to refer to a drive xe2x80x9cE:xe2x80x9d to retrieve executables, configuration files, and DLLs. Two possibilities exist. First, the second machine has a drive xe2x80x9cE:xe2x80x9d with similar files, for example a previous version of the same software. In this case, the software application may appear to run correctly with unexplainable problems. The second possibility is that there is no xe2x80x9cE:xe2x80x9d drive in the second machine or the existing xe2x80x9cE:xe2x80x9d drive does not have files by the names sought, so the application program will return many xe2x80x9cFile Not Foundxe2x80x9d errors throughout its execution, or may not execute at all.
In either of the two cases presented above, it would be burdensome to adjust the centralized database to assign temporarily the drive letter xe2x80x9cE:xe2x80x9d to the removable disk. In fact, even if it were easy to do this, other programs on the second machine which relied upon the xe2x80x9cE:xe2x80x9d drive may become unstable or inoperable when the removable drive is designated as xe2x80x9cE:xe2x80x9d.
Several known methods have been developed to allow changing of drive letters. U.S. Pat. No. 5,634,029 to Chen discloses a hardware solution whereby the hardware selectors to assign drive letters to drive devices are interchanged using logic on the cabling interfaces, such as the IDE cables. This solution is limited to interchange of devices on the same bus, so the swapping of drive letters between two devices located on separate IDE or SCSI busses would not be supported by the apparatus as disclosed.
U.S. Pat. Nos. 5,121,483, 5,386,516, and 5,896,546, all to Monahan, et al, rely upon centralized databases for recording the drive letter assignments.
Therefore, there exists a need in the art for a method and apparatus to assign and record preferred drive letters to fixed and removable media in such a way that does not require extensive manual intervention or configuration. Further, there exists a need in the art for a xe2x80x9cstickyxe2x80x9d drive letter method which allows the media itself, such as a floppy disk or CD-ROM disk, instead of the drive unit or the drive cabling, to record the preferred drive letter assignment for that piece of media. Additionally, there exists a need in the art for the sticky drive letter method and apparatus to be backward compatible with existing personal computer drive formats.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings wherein like reference numbers represent like parts of the invention. The invention employs a database for the recording of the assigned drive letters, but distributes the database across multiple drives and media, rather than centralizing the database as prior art systems have done. Fragments of the database are stored within the unused portion of disk space located after an MBR or EBR. In these fragments, the drive letter assignments or logical volume assignments for the particular piece of media and partition are stored.